Locating Features in Source Code
نویسندگان
چکیده
Understanding the implementation of a certain feature of a system requires identification of the computational units of the system that contribute to this feature. In many cases, the mapping of features to the source code is poorly documented. In this paper, we present a semiautomatic technique that reconstructs the mapping for features that are triggered by the user and exhibit an observable behavior. The mapping is in general not injective; that is, a computational unit may contribute to several features. Our technique allows for the distinction between general and specific computational units with respect to a given set of features. For a set of features, it also identifies jointly and distinctly required computational units. The presented technique combines dynamic and static analyses to rapidly focus on the system’s parts that relate to a specific set of features. Dynamic information is gathered based on a set of scenarios invoking the features. Rather than assuming a one-to-one correspondence between features and scenarios as in earlier work, we can now handle scenarios that invoke many features. Furthermore, we show how our method allows incremental exploration of features while preserving the “mental map” the analyst has gained through the analysis.
منابع مشابه
Learning Unified Features from Natural and Programming Languages for Locating Buggy Source Code
Bug reports provide an effective way for end-users to disclose potential bugs hidden in a software system, while automatically locating the potential buggy source code according to a bug report remains a great challenge in software maintenance. Many previous studies treated the source code as natural language by representing both the bug report and source code based on bag-of-words feature repr...
متن کاملEnhancing the Unified Features to Locate Buggy Files by Exploiting the Sequential Nature of Source Code
Bug reports provide an effective way for end-users to disclose potential bugs hidden in a software system, while automatically locating the potential buggy source files according to a bug report remains a great challenge in software maintenance. Many previous approaches represent bug reports and source code from lexical and structural information correlated their relevance by measuring their si...
متن کاملSearching, Selecting, and Synthesizing Source Code Components
PAGE As programmers develop software, they instinctively sense that source code exists that could be reused if found – many programming tasks are common to many software projects across different domains. Oftentimes, a programmer will attempt to create new software from this existing source code, such as third-party libraries or code from online repositories. Unfortunately, several major challe...
متن کاملEvolving Legacy Systems by Locating System Features using Regression Test Cases
There is a constant need for practical, efficient and costeffective software evolution techniques. We propose a novel evolution methodology that integrates the concepts of features and component-based software engineering (CBSE). We collect information about a legacy system’s features through interviews with key developers, users of the system and analyzing the exis ting regression test cases. ...
متن کاملA Framework for Source Code Search using ProgramPatternsSantanu
For maintainers involved in understanding and reengineer-ing large software, locating source code fragments that match certain patterns is a critical task. Existing solutions to the problem are few, and they either involve manual , painstaking scans of the source code using tools based on regular expressions, or the use of large, integrated software engineering environments that include simple ...
متن کاملLocating Faults in AspectJ Programs
As Aspect-Oriented Programming (AOP) wins more and more popularity, there is increasing interest in using aspects to implement crosscutting concerns in object-oriented software. During software evolution, source code editing and testing are interleaved activities to assure code quality. When regression tests fail unexpectedly after a long session of editing, it may be difficult for programmers ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Trans. Software Eng.
دوره 29 شماره
صفحات -
تاریخ انتشار 2003